﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using ParsAvecMoi.WebSite.Models.Profile;
using ParsAvecMoi.Logic.Surface.ExposedToUser;


namespace ParsAvecMoi.WebSite.Controllers
{
    public class ProfileController : Controller
    {
        public ActionResult Index()
        {
            // Add action logic here
            throw new NotImplementedException();
        }

        
        public ActionResult EditPersonalInfos()
        {
            //preparation d'un jeu de donnée structuré mais bidon (pour l'instant)
            PersonalInfosPageUneData data = new PersonalInfosPageUneData("Dupont", "Joel", "jojo");
            

            // passer d'autres informations qui sont en dehors de toute structure (attention à ne pas en abuser)
            ViewData["simple1"] = "toto";

            //on indique en retour le nom de la View qu'on veut utiliser (car ici ce n'est pas le nom par défaut) suivi de l'objet principal de données
             return View("PersonalInfosPageUne", data);
        }

        [AcceptVerbs("POST")]
        public ActionResult ValidateModifications([Bind(Prefix="PersonalInfos", Include = "NomDeFamille,Prenom,Surnom")] PersonalInfosPageUneData pi)
        {
            //preparation d'un jeu de donnée structuré mais bidon (pour l'instant)
            PersonalInfosPageUneData data = pi;
            
            //au cas où le binding échoue
            if (pi == null)
                return View("PersonalInfosPageUne");

                // ici la logique va tenter de faire l'opération voulue (valider)
                // TODO

                //puis retour à la vue, cad à l'affichage
                return View("PersonalInfosValidated", data);
        }




        public string AjaxReExamineTextBox(string NomDeFamille, string Prenom, string Surnom)
        {
            return "ajax call made!";
        }

        public JsonResult AjaxGetStateList()
        {
            List<ListItem> list = new List<ListItem>() {   
                new ListItem() { Value = "31", Text = "Haute Garonne" },   
                new ListItem() { Value = "82", Text = "Tarn & Garonne" },   
                new ListItem() { Value = "46", Text = "Lot & Garonne" }   
            };
            return this.Json(list);
        }


        
        public JsonResult AjaRespondToComplexInput(AjaxOptions opt)
        {
            opt.

            List<ListItem> list = new List<ListItem>() {   
                new ListItem() { Value = "31", Text = "Haute Garonne" },   
                new ListItem() { Value = "82", Text = "Tarn & Garonne" },   
                new ListItem() { Value = "46", Text = "Lot & Garonne" }   
            };
            return this.Json(list);
        }

    }
}

